package com.spoto.oa.dao;

import java.sql.SQLException;
import java.sql.Date;
import java.util.List;

import com.spoto.oa.model.Sales;

public interface SalesDao {

	/**
	 * 新增销售记录
	 * 
	 * @param sales
	 * @throws SQLException
	 */
	public void addSales(Sales sales) throws SQLException;

	/**
	 * 设置销售记录失效
	 * 
	 * @param id
	 */
	public void setInvalid(int id);

	/**
	 * 修改销售记录
	 * 
	 * @param id
	 * @param sales
	 */
	public void updateSales(int id, Sales sales);

	/**
	 * 根据产品类型查询销售记录
	 * 
	 * @param proType
	 * @param creator
	 * @param role
	 * @return
	 */
	public List<Sales> getSalesByProType(String proType, String creator,
			boolean role);

	/**
	 * 根据产品查询销售记录
	 * 
	 * @param proName
	 * @param creator
	 * @param role
	 * @return
	 */
	public List<Sales> getSalesByProName(String proName, String creator,
			boolean role);
	
	/**
	 * 根据产品编码查询销售记录
	 * @param proCode
	 * @param creator
	 * @param role
	 * @return
	 */
	public List<Sales> getSalesByProCode(String proCode, String creator,
			boolean role);

	/**
	 * 根据时间检索销售记录
	 * 
	 * @param dateBegin
	 * @param dateEnd
	 * @param creator
	 * @param role
	 * @return
	 */
	public List<Sales> getSalesByTime(Date dateBegin, Date dateEnd,
			String creator, boolean role);

	/**
	 * 检索所有销售记录
	 * 
	 * @param creator
	 * @param role
	 * @return
	 */
	public List<Sales> getAllSales(String creator, boolean role);

	/**
	 * 根据id检索销售记录
	 * 
	 * @param id
	 * @return
	 */
	public Sales getSalesById(int id);

	/**
	 * 根据时间与类型检索
	 * @param dateBegin
	 * @param dateEnd
	 * @param proType
	 * @param creator
	 * @param role
	 * @return
	 */
	public List<Sales> getSalesByTime(Date dateBegin, Date dateEnd,
			String proType, String creator, boolean role);
}
